﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Quan_ly_thong_tin_he_thong
{
    public partial class ThemNhaCungUng : Form
    {
        public ThemNhaCungUng()
        {
            InitializeComponent();
        }

        private void clearInformation()
        {
            //textBoxMaSo_NCU.Text = "";
            textBoxDiaChi_NCU.Text = "";
            textBoxSDT_NCU.Text = "";
            textBoxFax_NCU.Text = "";
            //textBoxEmail_NCU.Text = "";
        }

        private void clearNotification()
        {
            labelEmail_NCUError.Text = "";
            labelMaSo_NCUError.Text = "";
        }

        private void insert_NhaCungUng(string MaSo_NCU, string DiaChi_NCU, string SDT_NCU, string Fax_NCU, string Email_NCU)
        {
            Config file = new Config(Application.StartupPath + "//Config.ini");
            string connectionstring = file.ReadValue("server", "con");
            SqlConnection conn = new SqlConnection(connectionstring);
            string sql = "select * from NhaCungUng where MaSo_NCU = @MaSo_NCU or Email_NCU = @Email_NCU";
            SqlCommand cmd = new SqlCommand(sql, conn);
            
            cmd.Parameters.AddWithValue("@MaSo_NCU", MaSo_NCU);
            cmd.Parameters.AddWithValue("@Email_NCU", Email_NCU);
            conn.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            if (reader.Read())
            {
                if (reader["MaSo_NCU"].ToString() == MaSo_NCU)
                {
                    labelMaSo_NCUError.Text = "Mã số nhà cung ứng này đã tồn tại!";
                    labelThongBaoThemNCU.Text = "Bạn đã thêm vào không thành công!";
                }
                else
                {
                    labelEmail_NCUError.Text = "Email này đã tồn tại!";
                    labelThongBaoThemNCU.Text = "Bạn đã thêm vào không thành công!";
                }
            }
            else
            {
                    reader.Close();
                    cmd.CommandText = "insert into NhaCungUng values (@MaSo_NCU, @DiaChi_NCU, @SDT_NCU, @Fax_NCU, @Email_NCU)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.AddWithValue("@MaSo_NCU", MaSo_NCU);
                    cmd.Parameters.AddWithValue("@DiaChi_NCU", DiaChi_NCU);
                    cmd.Parameters.AddWithValue("@SDT_NCU", SDT_NCU);
                    cmd.Parameters.AddWithValue("@Fax_NCU", Fax_NCU);
                    cmd.Parameters.AddWithValue("@Email_NCU", Email_NCU);
                    cmd.ExecuteNonQuery();
                    labelThongBaoThemNCU.Text = "Bạn đã thêm vào thành công!";
            }
            conn.Close();
        }

        private void LoadDataGridViewThemNCU()
        {
            Config file = new Config(Application.StartupPath + "\\Config.ini");
            string connectionstring = file.ReadValue("server", "con");
            SqlConnection conn = new SqlConnection(connectionstring);
            string sql = "select * from NhaCungUng";
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            conn.Open();

            DataSet ds = new DataSet();
            adapter.Fill(ds, "NhaCungUng");
            dataGridViewThemNCU.AutoGenerateColumns = false;
            dataGridViewThemNCU.DataSource = ds.Tables["NhaCungUng"];
            conn.Close();
        }

        private void ButtonQuayLaiNCU_Click(object sender, EventArgs e)
        {
            this.Close();
        }



        private void textBoxMaSo_NCU_TextChanged(object sender, EventArgs e)
        {
            if (Regex.IsMatch(textBoxMaSo_NCU.Text, @"^([A-Za-z]){1,7} *( ([A-Za-z]){1,7} *)*$"))
                labelMaSo_NCUError.Text = "";
            else
                labelMaSo_NCUError.Text = "Bạn đã nhập sai!";
            if (textBoxMaSo_NCU.Text.Length == 0)
                labelMaSo_NCUError.Text = "Không được rỗng!";
        }

        private void textBoxEmail_NCU_TextChanged(object sender, EventArgs e)
        {
            if (Regex.IsMatch(textBoxEmail_NCU.Text, @"^[A-z0-9_]+([.][A-z0-9_]+)*([@][A-z0-9_]{3,})+([.][A-z0-9_]+)*[.][A-z]{2,4}$"))
                labelEmail_NCUError.Text = "";
            else
                labelEmail_NCUError.Text = "Bạn đã nhập sai!";
            if (textBoxEmail_NCU.Text.Length == 0)
                labelEmail_NCUError.Text = "Không được rỗng!";
        }

        private void ButttonThemNCU_Click(object sender, EventArgs e)
        {
            if (textBoxMaSo_NCU.Text == "" || textBoxDiaChi_NCU.Text == "" || textBoxSDT_NCU.Text == "" || textBoxFax_NCU.Text == "" || textBoxEmail_NCU.Text == "")
                labelThongBaoThemNCU.Text = "Xin hãy nhập đầy đủ dữ liệu!";
            else
            {
                ThongBaoThem f = new ThongBaoThem();
                if (f.ShowDialog() == DialogResult.OK)
                {
                    clearNotification();
                    insert_NhaCungUng(textBoxMaSo_NCU.Text, textBoxDiaChi_NCU.Text, textBoxSDT_NCU.Text, textBoxFax_NCU.Text, textBoxEmail_NCU.Text);
                    clearInformation();
                    f.Close();
                    LoadDataGridViewThemNCU();
                }
                else
                {
                    f.Close();
                }
            }
        }

        private void ThemNhaCungUng_Load(object sender, EventArgs e)
        {
            LoadDataGridViewThemNCU();
        }
    }
}
